#include <SFML/Graphics.hpp>
#include "../include/Brique.hpp"

Brique::Brique(int vie,int x,int y,sf::Image &image){
    if(vie < 0){
        fprintf(stderr, "Une brique ne peut pas avoir une vie < 0\n");
        exit(EXIT_FAILURE);
    }
    this->vie = vie;
    this->sprite.SetImage(image);

    for(int i=0;i<=2;i++){
        this->tabPosition[i].Left = i*LARGSPRITEBRIQUE;
        this->tabPosition[i].Top = 0;
        this->tabPosition[i].Right = (i+1)*LARGSPRITEBRIQUE;
        this->tabPosition[i].Bottom = HAUTSPRITEBRIQUE;
    }

    this->sprite.SetSubRect(this->tabPosition[vie]);
    this->sprite.SetPosition(x,y);
}

Brique::~Brique(){

}

sf::Sprite &Brique::getSprite(){
    return this->sprite;
}

bool Brique::isAlive(){
    return (this->vie > 0);
}

void Brique::downLive(){
    this->vie--;
    this->sprite.SetSubRect(this->tabPosition[vie]);
}

int Brique::getLive(){
    return this->vie;
}

sf::FloatRect Brique::getPositionObj(){
    sf::FloatRect rect(this->sprite.GetPosition().x,this->sprite.GetPosition().y,this->sprite.GetPosition().x+LARGSPRITEBRIQUE,this->sprite.GetPosition().y+HAUTSPRITEBRIQUE);
    return rect;
}
